/**
 *====================================================
 * 文件名称: FinanceWorkbenchActionApi.java
 * 修订记录：
 * No    日期				作者(操作:具体内容)
 * 1.    2015年11月12日			chenxy(创建:创建文件)
 *====================================================
 * 类描述：(说明未实现或其它不应生成javadoc的内容)
 */
package com.yuexunit.finance.project.action.v1;

import com.yuexunit.finance.context.FinVersion1;
import com.yuexunit.finance.project.action.v1.model.output.BadassetsHandleLineInfo;
import com.yuexunit.finance.project.action.v1.model.output.ContainerInventory;
import com.yuexunit.finance.project.action.v1.model.output.DetainedApplicationLineInfo;
import com.yuexunit.finance.project.action.v1.model.output.FinanceLineInfo;
import com.yuexunit.finance.project.action.v1.model.output.InterestDelayLineInfo;
import com.yuexunit.finance.project.action.v1.model.output.PersonalWorkbench;
import com.yuexunit.finance.project.action.v1.model.output.PickupApplicationLineInfo;
import com.yuexunit.finance.project.action.v1.model.output.PickupDelayApplicationLineInfo;
import com.yuexunit.page.PageCriteria;
import com.yuexunit.page.PageList;
import com.yuexunit.web.annotation.Action;
import com.yuexunit.web.annotation.Parameter;
import com.yuexunit.web.annotation.Permission;

/**
 * @ClassName: FinanceWorkbenchActionApi
 * @Description: TODO(这里用一句话描述这个类的作用)
 * @author chenxy
 * @date 2015年11月12日 上午9:42:30
 */
public interface FinanceWorkbenchActionApi {

	@Permission
	@Action(version = FinVersion1.class, description = "平台-首页(待办事项)")
	public PersonalWorkbench personalWorkbench(
			@Parameter(name = "flag", description = "数量标记", nullable = true) Boolean flag
	);
	
	@Permission
	@Action(version = FinVersion1.class, description = "查询收款确认列表")
	public PageList<PickupApplicationLineInfo> inquireWaitReceivablesPickupApplicationPageList(
			@Parameter(name = "pickupId", description = "提货申请ID", nullable = true) Long[] pickupIds,
			@Parameter(name = "enterpriseName", description = "融资客户", nullable = true) String enterpriseName,
			@Parameter(name = "productType", description = "业务类型", nullable = true) Integer productType,
			@Parameter(name = "financeNumber", description = "融资编号", nullable = true) String financeNumber,
			@Parameter(name = "bulkstockName", description = "融资货物", nullable = true) String bulkstockName,
			@Parameter(name = "page", description = "分页参数") PageCriteria page
	);
	
	@Permission
	@Action(version = FinVersion1.class, description = "查询通知放货列表")
	public PageList<PickupApplicationLineInfo> inquireWaitDeliveryPickupApplicationPageList(
			@Parameter(name = "pickupId", description = "提货申请ID", nullable = true) Long[] pickupIds,
			@Parameter(name = "waybillNumber", description = "运单号", nullable = true) String waybillNumber,
			@Parameter(name = "enterpriseName", description = "融资客户", nullable = true) String enterpriseName,
			@Parameter(name = "productType", description = "业务类型", nullable = true) Integer productType,
			@Parameter(name = "caseNumber", description = "箱号", nullable = true) String caseNumber,
			@Parameter(name = "financeNumber", description = "融资编号", nullable = true) String financeNumber,
			@Parameter(name = "bulkstockName", description = "融资货物", nullable = true) String bulkstockName,
			@Parameter(name = "page", description = "分页参数") PageCriteria page
	);

	@Permission
	@Action(version = FinVersion1.class, description = "企业信息-进行中项目")
	public PageList<FinanceLineInfo> inquireEnterpriseInProcessFinanceApplicationPageList(
			@Parameter(name = "enterpriseId", description = "﻿融资企业ID", nullable = true) Long enterpriseId,
			@Parameter(name = "waybillNumber", description = "运单号", nullable = true) String waybillNumber,
			@Parameter(name = "caseNumber", description = "箱号", nullable = true) String caseNumber,
			@Parameter(name = "financeNumber", description = "融资编号", nullable = true) String financeNumber,
			@Parameter(name = "financeContractNumber", description = "融资合同", nullable = true) String financeContractNumber,
			@Parameter(name = "financeContractSerialNumber", description = "合同序列号", nullable = true) String financeContractSerialNumber,
			@Parameter(name = "productType", description = "产品类型", nullable = true) Integer productType,
			@Parameter(name = "page", description = "分页参数") PageCriteria page
	);
	

	@Permission
	@Action(version = FinVersion1.class, description = "企业信息-进行中项目数")
	public PageList<FinanceLineInfo> inquireEnterpriseHistoryFinanceApplicationPageList(
			@Parameter(name = "enterpriseId", description = "﻿融资企业ID", nullable = true) Long enterpriseId,
			@Parameter(name = "page", description = "分页参数") PageCriteria page
	);

	@Permission
	@Action(version = FinVersion1.class, description = "企业信息-延期还款")
	public PageList<PickupDelayApplicationLineInfo> inquireEnterprisePickupDelayApplicationPageList(
			@Parameter(name = "enterpriseId", description = "﻿融资企业ID", nullable = true) Long enterpriseId,
			@Parameter(name = "page", description = "分页参数") PageCriteria page
	);

	@Permission
	@Action(version = FinVersion1.class, description = "企业信息-延期计息")
	public PageList<InterestDelayLineInfo> inquireEnterpriseInterestDelayApplicationPageList(
			@Parameter(name = "enterpriseId", description = "﻿融资企业ID", nullable = true) Long enterpriseId,
			@Parameter(name = "page", description = "分页参数") PageCriteria page
	);

	@Permission
	@Action(version = FinVersion1.class, description = "企业信息-异常货箱")
	public PageList<ContainerInventory> inquireEnterpriseAbnormalContainerInventoryPageList(
			@Parameter(name = "enterpriseId", description = "﻿融资企业ID", nullable = true) Long enterpriseId,
			@Parameter(name = "page", description = "分页参数") PageCriteria page
	);

	@Permission
	@Action(version = FinVersion1.class, description = "企业信息-赎货申请")
	public PageList<PickupApplicationLineInfo> inquireEnterpriseRansomPickupApplicationPageList(
			@Parameter(name = "enterpriseId", description = "﻿融资企业ID", nullable = true) Long enterpriseId,
			@Parameter(name = "page", description = "分页参数") PageCriteria page
	);

	@Permission
	@Action(version = FinVersion1.class, description = "企业信息-不良处置")
	public PageList<BadassetsHandleLineInfo> inquireEnterpriseBadassetsHandlePageList(
			@Parameter(name = "enterpriseId", description = "﻿融资企业ID", nullable = true) Long enterpriseId,
			@Parameter(name = "page", description = "分页参数") PageCriteria page
	);

	@Permission
	@Action(version = FinVersion1.class, description = "企业信息-扣货申请")
	public PageList<DetainedApplicationLineInfo> inquireEnterpriseDetainedApplicationPageList(
			@Parameter(name = "enterpriseId", description = "﻿融资企业ID", nullable = true) Long enterpriseId,
			@Parameter(name = "page", description = "分页参数") PageCriteria page
	);

}
